
// 数组对象的高阶函数

//过滤函数

var array1 = [1,2,10,15,50,100,55,30,35];

var  arra2 = array1.filter(function (n) {
    return n>50;
});
for (item of arra2){
    console.dir(item);
}
// map 循环对数组做操作
let  arra3 = arra2.map(function (n) {
     return n =n*2;
});
console.dir('----');
for (let  index in arra3){
    console.dir(arra3[index]);
}
//reduce 方法用于统计数组里的值，加减都可以
console.dir('----');
var  a =arra3.reduce(function (total,item) {
   return total+item;
});
var  b=arra3.reduce(function (total,item) {
    return total +item/2;
});
console.dir('a='+a);
console.dir('b='+b);
//综合使用
var  aa=array1.filter(function (n) {
    return n>50;
}).map(function (n) {
    return n*2;
}).reduce(function (total,n) {
  return total+n;
});
console.dir('综合使用结果');
console.dir('aa='+aa);
// n=> n<50 拉姆达表达式  n 参数 => 方法;

var bb = array1.filter(n=> n<50).map(n=> n*2).reduce((total,n) => total+n);
console.dir('综合使用结果----');
console.dir(bb);